
package com.yls.except.util;

import java.util.Calendar;
import java.util.Date;
import java.util.Random;
import java.text.SimpleDateFormat;
import java.text.DateFormat;

/* *
 *类名：UtilDate
 *功能：自定义订单类
 *详细：工具类，可以用作获取系统日期、订单编号等
 *版本：3.3
 *日期：2012-08-17
 *说明：
 */
public class UtilDate {
	
    /** 年月日时分秒毫秒(无下划线) yyyyMMddHHmmsssss */
    public static final String dtLong                  = "yyyyMMddHHmmsssss";
    
    /** 完整时间 yyyy-MM-dd HH:mm:ss */
    public static final String simple                  = "yyyy-MM-dd HH:mm:ss";
    
    /** 年月日(无下划线) yyyyMMdd */
    public static final String dtShort                 = "yyyyMMdd";
	
    
    /**
     * 返回系统当前时间(精确到毫秒)+三位随机数,作为一个唯一的订单编号
     * @return
     *      以yyyyMMddHHmmss为格式的当前系统时间
     */
	public  static String getOrderNum(){
		Date date=new Date();
		DateFormat df=new SimpleDateFormat(dtLong);
		return df.format(date)+getThree();
	}
	
	/**
	 * 获取系统当前日期(精确到毫秒)，格式：yyyy-MM-dd HH:mm:ss
	 * @return
	 */
	public  static String getDateFormatter(){
		Date date=new Date();
		DateFormat df=new SimpleDateFormat(simple);
		return df.format(date);
	}
	
	/**
	 * 获取系统当期年月日(精确到天)，格式：yyyyMMdd
	 * @return
	 */
	public static String getDate(){
		Date date=new Date();
		DateFormat df=new SimpleDateFormat(dtShort);
		return df.format(date);
	}
	
	/**
	 * 产生随机的三位数
	 * @return
	 */
	public static String getThree(){
		Random rad=new Random();
		return (rad.nextInt(900)+100)+"";
	}
	
	/**
	 * 生成时间加随机数的的文件名
	 * @return
	 */
	public static String imageName(){
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		return sdf.format(date)+Math.round(Math.random()*9000+1000);
	}
	
	/**
	 * 收支流水号
	 * @return
	 */
	public static String nidname(){
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		return sdf.format(date);
	}
	
	/**
	 * 资金流水号 
	 * @return
	 */
	public static String nidstring() {
		int time = (int)(new Date().getTime() / 1000);
		System.out.println(time);
		String result = time + "";
		System.out.println(result + "-------result-----------------------------");
		return result;
	}

	/**
	 * 获取当前时间秒数，再加三位随机数
	 * @return
	 */
	public static String getOrder(){
		String order = "" + (int)(new Date().getTime()/1000);
		Random rand = new Random();
		int num = rand.nextInt(1000);
		if(num < 10) {
			order += "00" + num;
		} else if(num < 100) {
			order += "0" + num;
		} else {
			order += num;
		}
		return order;
	}
	
	/**
	 * 获取年月日文件夹
	 * @return
	 */
	public static String getShijian() {
		Calendar ca = Calendar.getInstance();
		int year = ca.get(Calendar.YEAR);
		String month = (ca.get(Calendar.MONTH) + 1)+"";
		String date = ca.get(Calendar.DATE)+"";
		String hh = ca.get(Calendar.HOUR)+"";
		String mm = ca.get(Calendar.MINUTE)+"";
		String ss = ca.get(Calendar.SECOND)+"";
		if(Integer.parseInt(month) < 10) {
			month = "0" + month;
		}
		if(Integer.parseInt(date) < 10) {
			date = "0" + date;
		}
		if(Integer.parseInt(hh) < 10) {
			hh = "0" + hh;
		}
		if(Integer.parseInt(mm) < 10) {
			mm = "0" + mm;
		}
		if(Integer.parseInt(ss) < 10) {
			ss = "0" + ss;
		}
		String filename = "/" + year + "/" + month + "/" + date + "/";
		return filename;
	}
}
